home *** CD-ROM | disk | FTP | other *** search
/ Technotools / Technotools (Chestnut CD-ROM)(1993).ISO / lang_asm / objxref / sda.mac < prev    next >
Text File  |  1985-05-28  |  7KB  |  475 lines

  1. ;;
  2. ;;    Support    Macros - Screen    Design Aid
  3. ;;    May 1985 - Copyright - Dan Daetwyler
  4. ;;    Route 5, Box 518A
  5. ;;    Springdale, AR 72764
  6. ;;    (501) 756-0212
  7. ;;
  8. ;;    ALL RIGHTS RESERVED
  9. ;;
  10. ;;
  11. ;;    Internal Use Only Macro
  12. ;;
  13. $FDDEF    MACRO
  14.     IFNDEF    $SDA
  15.     EXTRN    $SDA:NEAR
  16.     ENDIF
  17.     ENDM
  18. ;;
  19. ;;    Internal Use Only Macro
  20. ;;
  21. $FDNTL    MACRO    P1,P2,P3,P4,P5,P6
  22.     $FDDEF
  23.     MOV    DX,OFFSET P1
  24.     IFNB    <P2>
  25.     MOV    P1.FLD,P2
  26.     ENDIF
  27.     IFNB    <P3>
  28.     MOV    P1.DAT,OFFSET P3
  29.     ENDIF
  30.     IFIDN    <P4>,<0>
  31.     MOV    P1.FKY,0
  32.     ELSE
  33.     IFNB    <P4>
  34.     MOV    P1.FKY,OFFSET P4
  35.     MOV    P1.FKD,25
  36.     ENDIF
  37.     ENDIF
  38.     IFIDN    <P5>,<0>
  39.     MOV    P1.KYL,0
  40.     ELSE
  41.     IFNB    <P5>
  42.     MOV    P1.KYL,OFFSET P5
  43.     ENDIF
  44.     ENDIF
  45.     IFIDN    <P6>,<0>
  46.     MOV    P1.ERM,0
  47.     ELSE
  48.     IFNB    <P6>
  49.     MOV    P1.ERM,OFFSET P6
  50.     MOV    P1.ERD,24
  51.     ENDIF
  52.     ENDIF
  53.     ENDM
  54. ;;
  55. ;;    Full Display Screen Process
  56. ;;
  57. $DISPLY    MACRO    P1,P2,P3,P4,P5,P6
  58.     IFNDEF    $SDAF
  59.     EXTRN    $SDAF:NEAR
  60.     ENDIF
  61.     MOV    DX,OFFSET P1
  62.     IFNB    <P2>
  63.     MOV    P1.TSTR,P2
  64.     ENDIF
  65.     MOV    P1.TFLD,OFFSET P3
  66.     IFNB    <P4>
  67.     IFIDN    <P4>,<0>
  68.     MOV    P1.FKY,0
  69.     ELSE
  70.     MOV    P1.FKY,OFFSET P4
  71.     MOV    P1.FKD,25
  72.     ENDIF
  73.     ENDIF
  74.     IFNB    <P5>
  75.     IFIDN    <P5>,<0>
  76.     MOV    P1.KYL,0
  77.     ELSE
  78.     MOV    P1.KYL,OFFSET P5
  79.     ENDIF
  80.     ENDIF
  81.     IFNB    <P6>
  82.     IFIDN    <P6>,<0>
  83.     MOV    P1.ERM,0
  84.     ELSE
  85.     MOV    P1.ERM,OFFSET P6
  86.     MOV    P1.ERD,24
  87.     ENDIF
  88.     ENDIF
  89.     CALL    $SDAF
  90.     ENDM
  91. ;;
  92. ;;    String to Field
  93. ;;
  94. $FDOUT    MACRO    P1,P2,P3,P4,P5,P6
  95.     MOV    P1.OPN,1
  96.     $FDNTL    P1,P2,P3,P4,P5,P6
  97.     CALL    $SDA
  98.     ENDM
  99. ;;
  100. ;;    Field to String
  101. ;;
  102. $FDINP    MACRO    P1,P2,P3,P4,P5,P6
  103.     MOV    P1.OPN,2
  104.     $FDNTL    P1,P2,P3,P4,P5,P6
  105.     CALL    $SDA
  106.     ENDM
  107. ;;
  108. ;;    String-Field O/I
  109. ;;
  110. $FDOIN    MACRO    P1,P2,P3,P4,P5,P6
  111.     MOV    P1.OPN,4
  112.     $FDNTL    P1,P2,P3,P4,P5,P6
  113.     CALL    $SDA
  114.     ENDM
  115. ;;
  116. ;;    Binary to Field
  117. ;;
  118. $FDBOU    MACRO    P1,P2,P3,P4,P5,P6
  119.     MOV    P1.OPN,1+8
  120.     $FDNTL    P1,P2,P3,P4,P5,P6
  121.     CALL    $SDA
  122.     ENDM
  123. ;;
  124. ;;    Field to Binary
  125. ;;
  126. $FDBIN    MACRO    P1,P2,P3,P4,P5,P6
  127.     MOV    P1.OPN,2+8
  128.     $FDNTL    P1,P2,P3,P4,P5,P6
  129.     CALL    $SDA
  130.     ENDM
  131. ;;
  132. ;;    Binary-Field O/I
  133. ;;
  134. $FDBOI    MACRO    P1,P2,P3,P4,P5,P6
  135.     MOV    P1.OPN,4+8
  136.     $FDNTL    P1,P2,P3,P4,P5,P6
  137.     CALL    $SDA
  138.     ENDM
  139. ;;
  140. ;;    Date to    Field
  141. ;;
  142. $FDDOU    MACRO    P1,P2,P3,P4,P5,P6
  143.     MOV    P1.OPN,1+16
  144.     $FDNTL    P1,P2,P3,P4,P5,P6
  145.     CALL    $SDA
  146.     ENDM
  147. ;;
  148. ;;    Field to Date
  149. ;;
  150. $FDDIN    MACRO    P1,P2,P3,P4,P5,P6
  151.     MOV    P1.OPN,2+16
  152.     $FDNTL    P1,P2,P3,P4,P5,P6
  153.     CALL    $SDA
  154.     ENDM
  155. ;;
  156. ;;    Date-Field O/I
  157. ;;
  158. $FDDOI    MACRO    P1,P2,P3,P4,P5,P6
  159.     MOV    P1.OPN,4+16
  160.     $FDNTL    P1,P2,P3,P4,P5,P6
  161.     CALL    $SDA
  162.     ENDM
  163. ;;
  164. ;;    Time to    Field
  165. ;;
  166. $FDTOU    MACRO    P1,P2,P3,P4,P5,P6
  167.     MOV    P1.OPN,1+32
  168.     $FDNTL    P1,P2,P3,P4,P5,P6
  169.     CALL    $SDA
  170.     ENDM
  171. ;;
  172. ;;    Field to Time
  173. ;;
  174. $FDTIN    MACRO    P1,P2,P3,P4,P5,P6
  175.     MOV    P1.OPN,2+32
  176.     $FDNTL    P1,P2,P3,P4,P5,P6
  177.     CALL    $SDA
  178.     ENDM
  179. ;;
  180. ;;    Time-Field O/I
  181. ;;
  182. $FDTOI    MACRO    P1,P2,P3,P4,P5,P6
  183.     MOV    P1.OPN,4+32
  184.     $FDNTL    P1,P2,P3,P4,P5,P6
  185.     CALL    $SDA
  186.     ENDM
  187. ;;
  188. ;;    Clear Field
  189. ;;
  190. $FDCLR    MACRO    P1,P2
  191.     $FDDEF
  192.     MOV    DX,OFFSET P1
  193.     IFNB    <P2>
  194.     MOV    P1.FLD,P2
  195.     ENDIF
  196.     MOV    P1.OPN,1+64
  197.     CALL    $SDA
  198.     ENDM
  199. ;;
  200. ;;    Get Field Attribute
  201. ;;
  202. $FDGAT    MACRO    P1,P2
  203.     $FDDEF
  204.     MOV    DX,OFFSET P1
  205.     MOV    P1.OPN,2+64
  206.     IFNB    <P2>
  207.     MOV    P1.FLD,P2
  208.     ENDIF
  209.     CALL    $SDA
  210.     ENDM
  211. ;;
  212. ;;    Set Field Attribute
  213. ;;
  214. $FDSAT    MACRO    P1,P2
  215.     $FDDEF
  216.     MOV    DX,OFFSET P1
  217.     MOV    P1.OPN,4+64
  218.     IFNB    <P2>
  219.     MOV    P1.FLD,P2
  220.     ENDIF
  221.     CALL    $SDA
  222.     ENDM
  223. ;;
  224. ;;    Position Cursor    to Field
  225. ;;
  226. $FDPOS    MACRO    P1,P2
  227.     $FDDEF
  228.     MOV    DX,OFFSET P1
  229.     MOV    P1.OPN,1+128
  230.     IFNB    <P2>
  231.     MOV    P1.FLD,P2
  232.     ENDIF
  233.     CALL    $SDA
  234.     ENDM
  235. ;;
  236. ;;    Reverse    "video"    for specified field
  237. ;;
  238. $SVIDEO    MACRO    P1,P2
  239.     $FDDEF
  240.     MOV    DX,OFFSET P1
  241.     MOV    P1.OPN,2+128
  242.     IFNB    <P2>
  243.     MOV    P1.FLD,P2
  244.     ENDIF
  245.     CALL    $SDA
  246.     ENDM
  247. ;;
  248. ;;    Restore    original attribute for a specified field
  249. ;;
  250. $SVREST    MACRO    P1,P2
  251.     $FDDEF
  252.     MOV    DX,OFFSET P1
  253.     MOV    P1.OPN,4+128
  254.     IFNB    <P2>
  255.     MOV    P1.FLD,P2
  256.     ENDIF
  257.     CALL    $SDA
  258.     ENDM
  259. ;;
  260. ;;    Define General Attribute
  261. ;;
  262. $SCATR    MACRO    P1
  263.     IFNDEF    $SDAA
  264.     EXTRN    $SDAA:NEAR
  265.     ENDIF
  266.     MOV    AL,P1
  267.     CALL    $SDAA
  268.     ENDM
  269. ;;
  270. ;;    Clear Screen
  271. ;;
  272. $SCCLR    MACRO    P1,P2,P3,P4
  273.     IFNDEF    $SDAC
  274.     EXTRN    $SDAC:NEAR
  275.     ENDIF
  276.     IFIDN    <P1>,<FULL>
  277.     XOR    BP,BP
  278.     MOV    DX,184FH
  279.     ELSE
  280.     MOV    BP,P1*100H+P2
  281.     MOV    DX,P3*100H+P4
  282.     ENDIF
  283.     CALL    $SDAC
  284.     ENDM
  285. ;;
  286. ;;    String Input
  287. ;;
  288. $SCINP    MACRO    P1
  289.     IFNDEF    $SDAI
  290.     EXTRN    $SDAI:NEAR
  291.     ENDIF
  292.     IFNB    <P1>
  293.     MOV    SI,OFFSET P1
  294.     ENDIF
  295.     CALL    $SDAI
  296.     ENDM
  297. ;;
  298. ;;    String O/I
  299. ;;
  300. $SCOIN    MACRO    P1,P2
  301.     IFNDEF    $SDAX
  302.     EXTRN    $SDAX:NEAR
  303.     ENDIF
  304.     IFNB    <P1>
  305.     MOV    DX,OFFSET P1
  306.     ENDIF
  307.     IFNB    <P2>
  308.     MOV    SI,OFFSET P2
  309.     ENDIF
  310.     CALL    $SDAX
  311.     ENDM
  312. ;;
  313. ;;    String Output
  314. ;;
  315. $SCOUT    MACRO    P1
  316.     IFNDEF    $SDAO
  317.     EXTRN    $SDAO:NEAR
  318.     ENDIF
  319.     IFNB    <P1>
  320.     MOV    DX,OFFSET P1
  321.     ENDIF
  322.     CALL    $SDAO
  323.     ENDM
  324. ;;
  325. ;;    Position Cursor
  326. ;;
  327. $SCPOS    MACRO    P1,P2
  328.     IFNDEF    $SDAP
  329.     EXTRN    $SDAP:NEAR
  330.     ENDIF
  331.     IFNB    <P1>
  332.     MOV    DX,P1*100H+P2
  333.     ENDIF
  334.     CALL    $SDAP
  335.     ENDM
  336. ;;
  337. ;;    Set Cursor Appearance
  338. ;;
  339. $SCURA    MACRO    P1,P2
  340.     IFNDEF    $SDAL
  341.     EXTRN    $SDAL:NEAR
  342.     ENDIF
  343. $FD1    =    0
  344.     $SCC1    P1,$FD1
  345.     $SCC1    P2,$FD1
  346.     MOV    AL,$FD1
  347.     CALL    $SDAL
  348.     ENDM
  349. $SCC1    MACRO    P1,P2
  350.     IFIDN    <P1>,<ON>
  351. P2    =    P2 + 1
  352.     ELSE
  353.     IFIDN    <P1>,<LINE>
  354. P2    =    P2 + 16
  355.     ELSE
  356.     IFIDN    <P1>,<BLOCK>
  357. P2    =    P2 + 32
  358.     ENDIF
  359.     ENDIF
  360.     ENDIF
  361.     ENDM
  362. ;;
  363. ;;    Display    Image
  364. ;;
  365. $SDISP    MACRO    P1,P2
  366.     IFNDEF    $SDAD
  367.     EXTRN    $SDAD:NEAR
  368.     ENDIF
  369.     IFNB    <P2>
  370.     MOV    SI,OFFSET P2
  371.     ELSE
  372.     XOR    SI,SI
  373.     ENDIF
  374.     MOV    DX,OFFSET P1
  375.     CALL    $SDAD
  376.     ENDM
  377. ;;
  378. ;;    Display    Image -    With Date/Time
  379. ;;
  380. $SDISPX    MACRO    P1,P2
  381.     IFNDEF    $SDADX
  382.     EXTRN    $SDADX:NEAR
  383.     ENDIF
  384.     IFNB    <P2>
  385.     MOV    SI,OFFSET P2
  386.     ELSE
  387.     XOR    SI,SI
  388.     ENDIF
  389.     MOV    DX,OFFSET P1
  390.     CALL    $SDADX
  391.     ENDM
  392. ;;
  393. ;;    Set Error Message Vector
  394. ;;
  395. $SERRM    MACRO    P1,P2,P3
  396.     MOV    P1.ERD,P2
  397.     MOV    P1.ERM,OFFSET P3
  398.     ENDM
  399. ;;
  400. ;;    Set Field Table    Vector
  401. ;;
  402. $SFLDV    MACRO    P1,P2,P3,P4
  403.     MOV    P1.TSTR,P3
  404.     MOV    P1.TCND,P2
  405.     MOV    P1.TFLD.OFFSET P4
  406.     ENDM
  407. ;;
  408. ;;    Set Function Key List Vector
  409. ;;
  410. $SFUNK    MACRO    P1,P2,P3
  411.     MOV    P1.FKY,OFFSET P3
  412.     MOV    P1.FKD,P2
  413.     ENDM
  414. ;;
  415. ;;    Set Termination    Key List Vector
  416. ;;
  417. $STRMK    MACRO    P1,P2
  418.     MOV    P1.KYL,OFFSET P2
  419.     ENDM
  420. ;;
  421. ;;    Load Time Interrupt
  422. ;;
  423. $FDDTS    MACRO    P1
  424.     IFIDN    <P1>,<ON>
  425.     IFNDEF    $SDZON
  426.     EXTRN    $SDZON:NEAR
  427.     ENDIF
  428.     CALL    $SDZON
  429.     ELSE
  430.     IFIDN    <P1>,<OFF>
  431.     IFNDEF    $SDZOF
  432.     EXTRN    $SDZOF:NEAR
  433.     ENDIF
  434.     CALL    $SDZOF
  435.     ELSE
  436.     DX    ?
  437.     ENDIF
  438.     ENDIF
  439.     ENDM
  440. ;;
  441. ;;    Define Field Table Entry
  442. ;;
  443. $DEFLD    MACRO    P1,P2,P3,P4
  444. L1    =    0
  445.     IFDIF    <P2>,<C>
  446.         IFIDN    <P2>,<B>
  447. L1    =    8
  448.         ELSE
  449.             IFIDN    <P2>,<D>
  450. L1    =    16
  451.             ELSE
  452.                 IFIDN    <P2>,<T>
  453. L1    =    32
  454.                 ELSE
  455.                 DX    ?            ;Error
  456.                 ENDIF
  457.             ENDIF
  458.         ENDIF
  459.     ENDIF
  460.     IFIDN       <P3>,<O>
  461. L1    =    L1 + 1
  462.     ELSE
  463.         IFIDN    <P3>,<I>
  464. L1    =    L1 + 2
  465.         ELSE
  466.             IFIDN    <P3>,<X>
  467. L1    =    L1 + 4
  468.             ELSE
  469.             DX        ?    ;Error
  470.             ENDIF
  471.         ENDIF
  472.     ENDIF
  473.     DW    L1 * 100H + P1,P4
  474.     ENDM
  475.